#JAVA 基本语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作

  • 类:类是一个模板,它描述一类对象的行为和状态。
  • 对象:对象是类的一个实例,有状态和行为。
  • 方法:方法就是行为,一个类可以有很多方法。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。 注意事项 Java 对大小写敏感,Class要求首字母大写,method要求用驼峰命名法 源文件名必须和类名相同, 即使用类名作为文件名保存,如 HelloWorld.java 主方法入口:所有的Java 程序由public static void main(String []args)方法开始执行
    #对象和类 Local Variable 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。 局部变量没有默认值,所以申明后必须初始化才可以使用。 Instance Variable 实例变量:实例变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化,对象销毁时销毁。 实例变量可以被类中方法、构造方法和特定类的语句块访问,一般设为私有。 存在初始值: 0, false, null 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。常用语声明常量
// 实现一个类
public class Dog{
   String breed;                // breed 是一个成员变量 Instance Variable
   int age;
   String color;
   void barking(){ String text = "wang wang wang"}      // text是一个局部变量 Local Variable
   void hungry(){}                // hungry 是一个方法 method
   void sleeping(){}
}
// 创建一个对象
public class Puppy{
   public Puppy(String name){
      //这个构造器仅有一个参数:name
      System.out.println("Passed Name is :" + name ); 
   }
   public static void main(String []args){
      // 下面的语句将创建一个Puppy对象
      Puppy myPuppy = new Puppy( "tommy" );
   }
}

Package

用来对类和接口进行分类,例如一个大型项目中,要成千上百的类,那么需要根据功能把类似的类分到制定package中

Import

提供一个路径来找到特定的类,如 import java.io.*;  // 表示引入java_installation/java/io路径下的所有类

  • 一个源文件中只能有一个public class, 但可以有多个 !public class
  • 如果源文件在一个package中,那么package语句必须在源文件的首行
  • 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
    #基本数据类型

内置数据类型

byte 8位整数,在大型数组中节省空间,byte 所占内存空间只有 int 类型的1/4 short 16位整数,同样节省空间,short 所占内存空间只有 int 的1/2 int 32位整数,默认整数变量类型 long 64位整数,只在需要大位数运算时使用,定义时需加上L 如 long a = 10000000000000L; float 32位单精度小数,节省空间,默认0.0f,定义时需要加上f 如 float b = 4.2f; double 64位双精度小数,是默认的浮点类型变量 boolean, char

    System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);  
    System.out.println("包装类:java.lang.Byte");  
    System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);  
    System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);  

Java 常量

使用 final 关键字来表示 constant value, 如 final double PI = 3.1415927;;


#Java 修饰符

访问修饰符

  • default 默认, 同一包内可见,无特定修饰符
  • private 私有,同一类内可见,不能被子类继承
  • public 共有,对所有类可见
  • protected 受保护的,对同一包内的类和所有的子类可见

非访问修饰符

  • static,用来创建类方法和类变量。无论一个类实例化多少对象,它的静态变量只有一份拷贝。
  • Final,用来修饰类、方法和变量。Final变量能够被显式的申明一次且只有一次,引用不能被修改,但引用的内容可以被修改。 final类不能够被继承,final方法可以被继承但是不能被修改。
  • Abstract,用来创建抽象类和抽象方法。抽象类不能用来实例化
  • Synchronized & volatile,主要用于线程的编程。
    #Java 循环 ##while while(ture){…} ##do-while do{…}while(ture) ##for for(initial; condition; update){…} 用于数组的增强for循环
int [] num = {1, 2, 5, 3, 4, 5, 6, 7, 7, 7};
for(int x: nums){
    ...
    if(x = 5){
        break;              //遇到break就跳出整个循环
        continue;       //遇到continue就跳出改次循环,直接进入下一次循环
        }
}

#数组 int[] test; char[] test1 = ['a', 'b', 'c', 'd']; **数组占用一片连续空间,下标从0开始** ## API 二分法搜索: public static int binarySearch(Object[] a, Object key) 判断数据类型: public static boolean equals(long[] a, long[] b) 指定数组内所有元素的值: public static void fill(int[] a, int value) 升序排序: public static void sort(object[] a) ## ArrayList

import java.util.ArrayListArrayList<Integer> test = new ArrayList<Integer>();